查看原文
其他

【SaaS开发】运维自动化工具研发经验

总是带来惊喜的 蓝鲸 2023-06-06

早鸟课程已经结束,但是SaaS开发挑战赛作品征集活动正在如火如荼地进行,你是否也存在苦于缺少经验,有技术但是没思路的情况,开发小鲸给你带来以下几个模拟实验供你参考,帮助学生们体验SaaS开发流程。

实验架构


产品自助工具SaaS


制作思路


随着公司SaaS开发的用户越来越多,相应出现的问题也越来越多。
查询数据的需求也越来越多,但是不是所有用户都有权限直接访问服务器,来查看日志和数据库。
为了规避风险,提高效率,就有了自助查询日志、数据库的需求。

需求:
1、根据SaaS app_code去获取appt、appo服务器上的日志内容及占用大小。
2、根据用户提供的数据库名去查询用户数据库的磁盘占用大小及表名。

3、查询相关产品(蓝鲸平台)的日志、数据库基本大小。



功能介绍



分成了4个页面,分别是查询SaaS日志查询SaaS数据库查询蓝鲸产品日志及数据库个人查询历史这4个页面


固定查询相应的日志


固定查询相应的日志,这个其实功能也挺方便的,实现也很容易。
每一个SaaS的日志路径都是相同的。


1.进入相应机器
首先需要知道是否有多台APPT、APPO服务器(选一台就行,也可以多台一起查询)

bashcat /data/install/install.config


或者

source /data/install/utils.fc
echo $APPO_IP # 加上tab 可以查看多个appoecho $APPT_IP # 加上tab 可以查看多个appt


由于暂时只需知道一个服务器上的地址,统一使用

bashsource /data/install/utils.fc ssh $APPO_IP


ssh $APPO_IP


2.进入相应SaaS路径

bashcd /data/bkce/paas_agent/apps/logs/$SAAS_ID/


ls 或者 ll -h


通常返回 

celery.log component.log supervisord.log $SAAS_ID.log uwsgi.log wb_mysql.log


3.选择相应日志文件


4.选择查看方式
方式一:根据日期查询日志
方式二:按行号查看—过滤出关键字附近的日志

方式三:查看最新200行的日志(可以选择行数)


固定查询相应的数据库


1.填写指定的数据库名
2.选择相应的SQL命令
3.执行作业查询

bashsource /data/install/utils.fc sql="select * from CHANNELIDCHANGELOG where OLDID=$a order by TIME desc;";ret = $(mysql -h$MYSQL_HOST -p$MYSQL_PASS -uroot $DB_NAME -e "$sql"');echo $ret


应用场景


查询SaaS日志、数据库
查询产品日志、数据库


用到什么技术


shell脚本、SQL、蓝鲸作业平台或者标准运维的API、celery。


举例同类产品


日志检索是根据关键字进行监控的 SaaS。但是这个产品日志SaaS更有针对性,有时候专注一个地方会更加方便。


分发执行组合工具SaaS


制作思路


随着深入使用蓝鲸,发现原生作业平台的功能,不能更加灵活的分发文件,需要先知道文件名及地址或者本地上传,而且社区版新建作业也不能同时分发文件、执行脚本。

所以我想先获取服务器上的文件路径及MD5,批量分发文件,并执行脚本。(若确认文件路径。可通过标准运维来实现)。

为了提高工作效率,减少重复工作,就有了自助需求。

需求:
1、作业平台相应业务创建通用查询脚本(查询指定路径的文件,并返回MD5;查询机器指定路径是否文件存在)


2、实现选择业务功能:查询相关业务的信息,生成单选框

3、实现选择主机功能:查询相应业务下的机器信息,并生成 多选框列表

4、实现查询路径功能:调用脚本生成下拉路径,输入相关文件名 ajax 执行查询脚本,并返回到前端,让用户选择机器相应文件

5、实现文件分发功能:选择文件后选择发送的机器及路径

6、实现执行作业功能:判断分发机器的文件是否存在,不存在继续分发,存在执行相应脚本


7、实现历史记录功能



功能介绍


以下仅为个人思路
分成了3个页面,分别是手动配置页面常用固定配置页面个人查询历史这3个页面


手动灵活配置


根据用户选择的机器,后端调用脚本(作业平台创建脚本)生成一级目录,选择相应目录,输入的文件名,后端调用脚本(正则查询)并返回相应符合的文件,选择文件,选择分发机器,选择分发成功后需要执行的脚本,查看执行的日志及结果。

优点:通过脚本,避免人为输入文件名错误的风险;通过脚本检查,分发是否成功,成功再执行脚本,更加安全。
缺点:需要不停的选择脚本和机器


常用固定配置页面


为了解决上一个灵活配置的缺点。
运维的工作有时候是固定的,统一修改配置文件,分发文件并执行相关命令,固定机器固定脚本,写成多套场景的脚本流水线。比如:配置系统设置,关闭SELinux;统一刷新防火墙规则;统一安装卸载相应版本软件;批量备份文件并发送到固定一台机器。


对于固定配置页面,只需要选择相应功能的脚本,选择相应的机器,即可完成想要的功能。


个人查询历史


有时候需要查看历史执行结果,这时候可以通过记录的信息直接跳转到作业平台相应的历史记录。


应用场景


批量分发文件并执行脚本等组合使用情景。


用到什么技术


shell脚本、SQL、蓝鲸配置平台、作业平台或者标准运维的API、celery。


举例同类产品


标准运维是一个很好的工具,如果功能不满足,可以考虑开发标准运维插件,或者跟上面的SaaS一样,通过多个脚本来实现自己的重复工作。
这个分发执行组合SaaS更加可以根据自己的工作场景去适应。



日志切割工具SaaS


制作思路


场景:

凌晨3点多一个服务报警,写入日志1G,日志文件总5个G.此时你需要查看日志来进行排查。

对于linux 运维,日志文件的管理及其重要。
任何一个存储数据的软件,都需要定期的备份数据。
如果日志数据文件太大,我们需要将其进行切割,备份,分发至指定机器存储。

在使用蓝鲸作业平台的基础上,为了简化工作,提高效率,就有了自助化的需求,不用远程大量机器,来操作日志文件,就有了开发SaaS的需求。

需求:
1、作业平台相应业务创建通用查询脚本(查询指定路径的文件,并返回MD5;查询机器指定路径是否文件存在)

2、实现选择业务功能:查询相关业务的信息,生成单选框

3、实现选择主机功能:查询相应业务下的机器信息,并生成 多选框列表

4、实现查询路径功能:调用脚本生成下拉路径,输入相关文件名 ajax 执行查询脚本,并返回到前端,让用户选择机器相应文件

5、作业平台相应业务创建切割脚本,检查是否有这个文件,有则将日志重定向到切割后的文件,清空日志。没有则复制一份,清空日志

6、作业平台相应业务创建查看脚本,检查是否有这个文件,有则将输出相应行数文件内容。没有则报错返回 文件不存在。


7、作业平台相应业务创建压缩脚本,检查是否有这个文件,有则删除。压缩文件,并删除源文件。

8、作业平台相应业务创建检查脚本,检查是否有tar.gz结尾文件,有则匹配是否带时间,带时间则看是否超过10天,超过删除(看公司规定保存多久的日志)。不带时间则跳过。

9、实现文件分发功能:选择文件后选择发送的机器及路径。

10、实现执行作业功能:判断分发机器的文件是否存在,不存在继续分发,存在执行相应脚本。

11、实现定时任务功能,将以上作业合成一个定时任务。


12、实现历史记录功能,超链接到作业平台具体执行历史页面。



功能介绍


以下仅为个人思路
分成了3个页面,分别是手动配置页面常用定时配置页面个人查询历史这3个页面。


手动灵活配置


根据用户选择的机器,后端调用脚本(作业平台创建脚本)生成一级目录,选择相应目录,输入的文件名,后端调用脚本(正则查询)并返回相应符合的文件,选择文件,前端页面实现,选择是按照时间(月、周、天、小时、分钟)切割 还是按照大小切割,选择是否查看具体文件的内容(多少行),选择是否需要压缩,选择是否需要分发到指定机器,查看执行的日志内容及结果。

优点:通过脚本,避免人为输入文件名错误的风险;通过脚本检查,分发是否成功,成功再执行脚本,更加安全。
缺点:需要不停的选择脚本和机器。


常用固定配置页面


为了解决上一个灵活配置的缺点。
运维的工作有时候是固定的,统一切割日志文件,分发文件并执行相关命令,固定机器固定脚本固定时间,写成多套场景的脚本流水线。比如:定时删除前一个月的日志文件,或者备份储存本周的日志文件等。
对于固定配置页面,只需要选择相应功能的脚本选择相应的机器,即可完成想要的功能


个人查询历史


有时候需要查看历史执行结果,这时候可以通过记录的信息直接跳转到作业平台相应的历史记录。


应用场景


批量操作日志文件,分发文件并执行脚本等组合使用情景。


用到什么技术


shell脚本、SQL、蓝鲸配置平台、作业平台或者标准运维的API、celery。


举例同类产品


logrotate程序、crontab定时任务等
这个SaaS可以根据自己的工作场景去适应不同日志文件操作需求。


我们持续向早鸟活动所有学员征集最终实战SaaS作品
两大活动等你来参加!


01

实操学习有礼

参与要求:根据课程作业,实现功能完整的 SaaS 作品即可参加,实验手册的 SaaS也可以。


参与奖励凡审核合格的 SaaS 将会收到由腾讯蓝鲸智云官方寄出的大礼包一份。


02

终极开发挑战

参与要求:开发服务于生产环境有趣/有实际价值的 SaaS 作品,现场PK!


参与奖励:终极挑战必有终极奖励,万元级大奖等你来拿!

获取更多信息请点击上方图片


七节课程用基础通用的技能培训,让各位具备快速开发构建企业运维/运营系统的技能

点击上方图片开始报名有奖学习




腾讯蓝鲸智云招募合作伙伴合作共赢,是腾讯文化中重要的一部分。腾讯蓝鲸智云团队计划在全国范围内,大力发展生态体系,寻找优质的合作伙伴,共创运维领域的新局面。我们希望为解决方案供应商、集成商、服务商、应用软件开发商、咨询机构等提供更多的增值服务。
招募详情,请点击访问腾讯蓝鲸智云官网:http://bk.tencent.com



您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存